package com.rtx.job.service.impl;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.rtx.api.annotation.DataSourceAnnotation;
import com.rtx.job.bean.po.EdiJobConfig;
import com.rtx.job.mapper.EdiJobConfigMapper;
import com.rtx.job.service.EdiJobConfigService;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.List;
@Service
public class EdiJobConfigServiceImpl extends ServiceImpl<EdiJobConfigMapper, EdiJobConfig> implements EdiJobConfigService {

    @DataSourceAnnotation
    @Override
    public List<EdiJobConfig> selectEdiJobConfig(String whseid, Wrapper<EdiJobConfig> wrapper) {
        return this.list(wrapper);
    }

    @Override
    public void selectEdiJobConfigList(Page<EdiJobConfig> pageParam, EdiJobConfig ediJobConfig) {
        LambdaQueryWrapper<EdiJobConfig> query = Wrappers.lambdaQuery();
        query.orderByAsc(EdiJobConfig::getId);
        if(ediJobConfig != null){
            query.eq(ediJobConfig.getId() != null,EdiJobConfig::getId,ediJobConfig.getId())
                    .eq(StringUtils.hasText(ediJobConfig.getJobName()),EdiJobConfig::getJobName,ediJobConfig.getJobName())
                    .eq(StringUtils.hasText(ediJobConfig.getWarehouseType()),EdiJobConfig::getWarehouseType,ediJobConfig.getWarehouseType())
                    .like(StringUtils.hasText(ediJobConfig.getJobDescr()),EdiJobConfig::getJobDescr,ediJobConfig.getJobDescr());
        }
        baseMapper.selectPage(pageParam,query);
    }
}
